unit UModeloPesquisa;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, CheckLst, ExtCtrls, DB,
  DBTables, UDPTOUteis;

type
  TFModeloPesquisa = class(TForm)
    pnl1: TPanel;
    pnl3: TPanel;
    pnl4: TPanel;
    pnl6: TPanel;
    pnl5: TPanel;
    ScrollBox1: TScrollBox;
    pnl11: TPanel;
    pnl12: TPanel;
    pnl13: TPanel;
    chklstOrdenacao: TCheckListBox;
    pnl14: TPanel;
    BtLimpar: TBitBtn;
    BtLocalizar: TBitBtn;
    pnl7: TPanel;
    dbgConsulta: TDBGrid;
    qPadraoPesquisa: TQuery;
    dsPadraoPesquisa: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure dbgConsultaDblClick(Sender: TObject);
    procedure BtLocalizarClick(Sender: TObject);
    procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  FModeloPesquisa: TFModeloPesquisa;

Const
  DBNome = 'BDSistema.FDB';

implementation

{$R *.dfm}


procedure TFModeloPesquisa.FormCreate(Sender: TObject);
begin
  DPTOCriaPesquisa(qPadraoPesquisa, chklstOrdenacao, ScrollBox1,dbgConsulta);
  //
  acertaApontamentoBanco(Self);
  //
end;

procedure TFModeloPesquisa.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  TForm(Self).Hint := qPadraoPesquisa.fieldByName(TForm(Self).Hint).AsString;
end;

procedure TFModeloPesquisa.dbgConsultaDblClick(Sender: TObject);
begin
  TForm(Self).Close;
end;

procedure TFModeloPesquisa.BtLocalizarClick(Sender: TObject);
begin
  DPTOPesquisar(qPadraoPesquisa,chklstOrdenacao, ScrollBox1);
end;

procedure TFModeloPesquisa.FormShortCut(var Msg: TWMKey;
  var Handled: Boolean);
begin
        if Msg.CharCode = VK_F5 then BtLocalizar.Click; // LOCALIZAR - F5
        if Msg.CharCode = VK_F12 then BtLimpar.Click;   // LIMPAR - F12


     if (Msg.CharCode = VK_LEFT) and (GetKeyState (VK_CONTROL) <0) THEN qPadraoPesquisa.Prior; // VAI PARA O REGISTRO ANTERIOR - CTRL + SETA PRA ESQUERDA
     if (Msg.CharCode = VK_RIGHT) and (GetKeyState (VK_CONTROL) <0) THEN qPadraoPesquisa.Next; // VAI PARA O PROXIMO REGISTRO - CTRL + SETA PRA DIREITA
     if (Msg.CharCode = VK_UP) and (GetKeyState (VK_CONTROL) <0) THEN qPadraoPesquisa.First; // VAI PARA O PRIMEIRO REGISTRO - CTRL + SETA PRA CIMA
     if (Msg.CharCode = VK_DOWN) and (GetKeyState (VK_CONTROL) <0) THEN qPadraoPesquisa.Last; // VAI PARA O ULTIMO REGISTRO - CTRL + SETA PRA CIMA


end;

end.
